package cliente.so;

import cliente.iu.IUCadastroNovoUsuario;
import cliente.iu.IUTelaLogin;
import cliente.iu.JFrameSingleton;
import cliente.rn.RNAutenticador;

public class SOControladoraClienteIU {

	private SOClienteSaida clienteSaida;
	private RNAutenticador autenticador;

	public SOControladoraClienteIU(RNAutenticador autenticador,
			SOClienteSaida clienteSaida) {
		this.setAutenticador(autenticador);
		this.setClienteSaida(clienteSaida);

		abrirTelaInicial();
	}

	private void abrirTelaInicial() {
		abrirTelaLogin();
	}

	public void abrirTelaLogin() {
		JFrameSingleton.getSingleton().trocarPanel(
				new IUTelaLogin(this, getAutenticador()));
	}

	public void abrirTelaCadastroNovoUsuario() {
		JFrameSingleton.getSingleton().trocarPanel(
				new IUCadastroNovoUsuario(this, getAutenticador()));
	}

	public void abrirSalaPrincipal() {
		getClienteSaida().abrirSalaPrincipal(JFrameSingleton.getSingleton());
	}

	public void encerrarAplicacao() {
		JFrameSingleton.getSingleton().dispose();
		System.exit(0);
	}

	protected SOClienteSaida getClienteSaida() {
		return clienteSaida;
	}

	protected void setClienteSaida(SOClienteSaida clienteSaida) {
		this.clienteSaida = clienteSaida;
	}

	protected RNAutenticador getAutenticador() {
		return autenticador;
	}

	protected void setAutenticador(RNAutenticador autenticador) {
		this.autenticador = autenticador;
	}
}
